﻿#pragma once

#include "../MonsterObject.h"
#include "../../MirDatabase/MonsterInfo.h"
#include "../../../Shared/Enums.h"
#include "../../../Shared/Packet.h"

using namespace Server::MirDatabase;
namespace S = ServerPackets;

namespace Server::MirObjects::Monsters
{
    class FrostTiger : public MonsterObject
    {
    protected:
        unsigned char AttackRange = 6;
    public:
        long long SitDownTime = 0;

    protected:
        FrostTiger(MonsterInfo *info);

    private:
        bool _sitting = false;
    public:
        bool getSitting() const;
        void setSitting(bool value);

    protected:
        bool getCanAttack() const override;

        bool getCanMove() const override;

    public:
        bool Walk(MirDirection dir) override;

    protected:
        bool InAttackRange() override;

        long long NewSitDownTime();

        void FindTarget() override;

        void Attack() override;

        void ProcessTarget() override;

        void ProcessAI() override;

    public:
        Packet *GetInfo() override;
    };
}
